import router from "./index.js";
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

NProgress.configure({ showSpinner: false });


import { getToken } from '@/utils/auth'
import  hasToken from "@/utils/tokenStatus"


const whiteList = ['/login', '/register'];

// 路由的全局前置守卫
// 每个守卫方法接收两个参数：
// to: 即将要进入的目标 用一种标准化的方式
// from: 当前导航正要离开的路由 用一种标准化的方式
router.beforeEach(
    (to, from, next) => {

        // 页面加载进度条开始
        NProgress.start()


        // console.log("即将跳转到：" + to.path);
        // const sleep = time => {
        //     return new Promise(resolve => setTimeout(resolve,time)
        //     ) }
        // sleep(3000).then(()=>{ next()})
        if (hasToken()) {
            console.log("浏览器中存在token")
            if (to.path == "/login") {
                next({ path: "/" })
                NProgress.done()
            } else if (whiteList.indexOf(to.path) !== -1) {
                next()
            } else {
                next()
            }
        }
        //未获取到token
        else {
            console.log("浏览器中不存在 Token");
            // 在免登陆的路径情况下，直接进入到指定的路径
            if (whiteList.indexOf(to.path) !== -1) {
                // 在免登录白名单，直接进入
                next()

            }
            // 在非免登陆的路径情况下，全部重定向到登陆页面
            else {
                next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
                NProgress.done()
            }
        }

    }
)

router.afterEach(
    (to, from) => {
        console.log("页面跳转完成:" + to.path)
        NProgress.done()
    }
)